www.gusucode.com > VC++仿XP免费Prof UIS界面库-源码程序 > VC++仿XP免费Prof UIS界面库-源码程序/code/Samples/ProfUIS_Controls/tabdemodlg.cpp
//Download by http://www.NewXing.com // tabdemodlg.cpp : implementation file // #include "stdafx.h" #if (!defined __EXT_MFC_NO_TAB_CTRL) #include "profuis_controls.h" #include "tabdemodlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CTabDemoDlg dialog CTabDemoDlg::demo_items_data_t CTabDemoDlg::g_ItemsData[] = { { _T("DevStudio"), true }, { _T("Help Index"), true }, { _T("Help Search"), false }, { _T("Index Results"), false }, { _T("Contents"), false }, { _T("Reload"), true }, { _T("Home"), false }, { _T("Browser"), false }, { _T("Find Results 1"), true }, { _T("Find Symbol Results"), false }, { _T("Find Results 2"), false }, { _T("Find In Files"), false }, { _T("Favorites"), true }, { _T("Add To Favorites"), false }, { _T("Full Screen"), true }, { _T("Dynamic Help"), true }, { _T("Resource View"), true }, { _T("Solution Explorer"), false }, { _T("Class View"), false }, { _T("Toolbox"), true }, { _T("Task List"), false }, { _T("Open"), true }, { _T("Save All"), false }, }; CTabDemoDlg::CTabDemoDlg(CWnd* pParent /*=NULL*/) : CExtResizableDialog(CTabDemoDlg::IDD, pParent) , m_nDemoImageListSize( sizeof( g_ItemsData ) / sizeof( g_ItemsData[0] ) ) , m_nDemoImageListAddIndexInner( 0 ) , m_nDemoImageListAddIndexOuter( 0 ) { //{{AFX_DATA_INIT(CTabDemoDlg) //}}AFX_DATA_INIT VERIFY( m_ImageList.Create( IDR_TAB_IMAGES, 16, 1, RGB(255,0,255) ) ); ASSERT( m_ImageList.GetImageCount() >= m_nDemoImageListSize ); } void CTabDemoDlg::DoDataExchange(CDataExchange* pDX) { CExtResizableDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTabDemoDlg) DDX_Control(pDX, IDC_CHECK_FOCUS_ON_HOVER, m_CheckFocusOnHover); DDX_Control(pDX, IDC_CHECK_FULL_WIDTHS, m_CheckFullRowWidth); DDX_Control(pDX, IDC_CHECK_CENTER_TEXT, m_CheckCenterText); DDX_Control(pDX, IDC_CHECK_AUTOHIDE_SCROLL, m_CheckAutoHideScroll); DDX_Control(pDX, IDC_CHECK_ENABLE_HELP, m_CheckEnableHelp); DDX_Control(pDX, IDC_CHECK_ENABLE_CLOSE, m_CheckEnableClose); DDX_Control(pDX, IDC_CHECK_SHOW_HELP, m_CheckShowHelp); DDX_Control(pDX, IDC_CHECK_BOLD_SELECTION, m_CheckBoldSelection); DDX_Control(pDX, IDC_CHECK_SHOW_CLOSE, m_CheckShowClose); DDX_Control(pDX, IDC_CHECK_INVERT_VERT_FONT, m_CheckInvertFont); DDX_Control(pDX, IDC_CHECK_EQUAL_WIDTHS, m_CheckEqualWidth); DDX_Control(pDX, IDC_CHECK_SHOW_BORDERS, m_CheckShowBorders); DDX_Control(pDX, IDC_BUTTON_ADD_TAB_10, m_BtnAdd10); DDX_Control(pDX, IDC_BUTTON_ADD_TAB_1, m_BtnAdd1); DDX_Control(pDX, IDC_BUTTON_CLEAR_TABS, m_BtnClear); //}}AFX_DATA_MAP DDX_Control( pDX, ID_TABCTRL_OUTER_TOP, m_wndTabOuterTop ); DDX_Control( pDX, ID_TABCTRL_OUTER_BOTTOM, m_wndTabOuterBottom ); DDX_Control( pDX, ID_TABCTRL_OUTER_LEFT, m_wndTabOuterLeft ); DDX_Control( pDX, ID_TABCTRL_OUTER_RIGHT, m_wndTabOuterRight ); DDX_Control( pDX, ID_TABCTRL_INNER_TOP, m_wndTabInnerTop ); DDX_Control( pDX, ID_TABCTRL_INNER_BOTTOM, m_wndTabInnerBottom ); DDX_Control( pDX, ID_TABCTRL_INNER_LEFT, m_wndTabInnerLeft ); DDX_Control( pDX, ID_TABCTRL_INNER_RIGHT, m_wndTabInnerRight ); } BEGIN_MESSAGE_MAP(CTabDemoDlg, CExtResizableDialog) //{{AFX_MSG_MAP(CTabDemoDlg) ON_WM_CONTEXTMENU() ON_BN_CLICKED(IDC_BUTTON_CLEAR_TABS, OnButtonClearTabs) ON_BN_CLICKED(IDC_BUTTON_ADD_TAB_1, OnButtonAddTab1) ON_BN_CLICKED(IDC_BUTTON_ADD_TAB_10, OnButtonAddTab10) ON_BN_CLICKED(IDC_CHECK_SHOW_BORDERS, OnCheckShowBorders) ON_BN_CLICKED(IDC_CHECK_SHOW_CLOSE, OnCheckShowClose) ON_BN_CLICKED(IDC_CHECK_EQUAL_WIDTHS, OnCheckEqualWidths) ON_BN_CLICKED(IDC_CHECK_INVERT_VERT_FONT, OnCheckInvertVertFont) ON_BN_CLICKED(IDC_CHECK_BOLD_SELECTION, OnCheckBoldSelection) ON_BN_CLICKED(IDC_CHECK_SHOW_HELP, OnCheckShowHelp) ON_BN_CLICKED(IDC_CHECK_ENABLE_CLOSE, OnCheckEnableClose) ON_BN_CLICKED(IDC_CHECK_ENABLE_HELP, OnCheckEnableHelp) ON_BN_CLICKED(IDC_CHECK_FULL_WIDTHS, OnCheckFullRowWidths) ON_BN_CLICKED(IDC_CHECK_CENTER_TEXT, OnCheckCenterText) ON_BN_CLICKED(IDC_CHECK_AUTOHIDE_SCROLL, OnCheckAutohideScroll) ON_BN_CLICKED(IDC_CHECK_FOCUS_ON_HOVER, OnCheckFocusOnHover) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CTabDemoDlg message handlers BOOL CTabDemoDlg::OnInitDialog() { if( !CExtResizableDialog::OnInitDialog() ) { ASSERT( FALSE ); return FALSE; } if( m_ImageList.GetSafeHandle() == NULL ) { ASSERT( FALSE ); return FALSE; } AddAnchor( IDC_CHECK_SHOW_BORDERS, CSize( 100, 0) ); AddAnchor( IDC_CHECK_SHOW_CLOSE, CSize( 100, 0) ); AddAnchor( IDC_CHECK_EQUAL_WIDTHS, CSize( 100, 17) ); AddAnchor( IDC_CHECK_ENABLE_CLOSE, CSize( 100, 17) ); AddAnchor( IDC_CHECK_FULL_WIDTHS, CSize( 100, 34) ); AddAnchor( IDC_CHECK_SHOW_HELP, CSize( 100, 34) ); AddAnchor( IDC_CHECK_CENTER_TEXT, CSize( 100, 51) ); AddAnchor( IDC_CHECK_ENABLE_HELP, CSize( 100, 51) ); AddAnchor( IDC_CHECK_AUTOHIDE_SCROLL, CSize( 100, 68) ); AddAnchor( IDC_CHECK_INVERT_VERT_FONT, CSize( 100, 68) ); AddAnchor( IDC_CHECK_BOLD_SELECTION, CSize( 100, 86) ); AddAnchor( IDC_CHECK_FOCUS_ON_HOVER, CSize( 100, 86) ); AddAnchor( IDC_BUTTON_CLEAR_TABS, CSize( 100, 100) ); AddAnchor( IDC_BUTTON_ADD_TAB_1, CSize( 100, 100) ); AddAnchor( IDC_BUTTON_ADD_TAB_10, CSize( 100, 100) ); AddAnchor( ID_TABCTRL_OUTER_TOP, __RDA_LT, __RDA_RT ); AddAnchor( ID_TABCTRL_OUTER_BOTTOM, __RDA_LB, __RDA_RB ); AddAnchor( ID_TABCTRL_OUTER_LEFT, __RDA_LT, __RDA_LB ); AddAnchor( ID_TABCTRL_OUTER_RIGHT, __RDA_RT, __RDA_RB ); AddAnchor( ID_TABCTRL_INNER_TOP, __RDA_LT, __RDA_RT ); AddAnchor( ID_TABCTRL_INNER_BOTTOM, __RDA_LB, __RDA_RB ); AddAnchor( ID_TABCTRL_INNER_LEFT, __RDA_LT, __RDA_LB ); AddAnchor( ID_TABCTRL_INNER_RIGHT, __RDA_RT, __RDA_RB ); EnableSaveRestore( _T("ExtResizableDialog"), _T("TabDemoDlg") ); m_wndTabOuterTop.ModifyTabWndStyle( 0, __ETWS_ORIENT_TOP | __ETWS_GROUPED , true ); m_wndTabOuterBottom.ModifyTabWndStyle( 0, __ETWS_ORIENT_BOTTOM | __ETWS_GROUPED , true ); m_wndTabOuterLeft.ModifyTabWndStyle( 0, __ETWS_ORIENT_LEFT | __ETWS_GROUPED , true ); m_wndTabOuterRight.ModifyTabWndStyle( 0, __ETWS_ORIENT_RIGHT | __ETWS_GROUPED , true ); m_wndTabInnerTop.ModifyTabWndStyle( 0, __ETWS_ORIENT_TOP , true ); m_wndTabInnerBottom.ModifyTabWndStyle( 0, __ETWS_ORIENT_BOTTOM , true ); m_wndTabInnerLeft.ModifyTabWndStyle( 0, __ETWS_ORIENT_LEFT , true ); m_wndTabInnerRight.ModifyTabWndStyle( 0, __ETWS_ORIENT_RIGHT , true ); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CTabDemoDlg::OnContextMenu(CWnd* pWnd, CPoint point) { pWnd; VERIFY( _TrackWndSystemPopupMenu( &point, FALSE ) ); } void CTabDemoDlg::OnCheckShowBorders() { DWORD dwAddExBorderStyles = WS_EX_STATICEDGE; DWORD dwRemoveExBorderStyles = WS_EX_STATICEDGE; if( m_CheckShowBorders.GetCheck() ) dwRemoveExBorderStyles = 0; else dwAddExBorderStyles = 0; m_wndTabOuterTop.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles ); m_wndTabOuterBottom.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles ); m_wndTabOuterLeft.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles ); m_wndTabOuterRight.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles ); m_wndTabInnerTop.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles ); m_wndTabInnerBottom.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles ); m_wndTabInnerLeft.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles ); m_wndTabInnerRight.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles ); UINT nSetWindowPosFlags = SWP_NOMOVE|SWP_NOSIZE |SWP_NOZORDER|SWP_NOOWNERZORDER |SWP_NOACTIVATE |SWP_FRAMECHANGED ; m_wndTabOuterTop.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags); m_wndTabOuterBottom.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags); m_wndTabOuterLeft.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags); m_wndTabOuterRight.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags); m_wndTabInnerTop.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags); m_wndTabInnerBottom.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags); m_wndTabInnerLeft.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags); m_wndTabInnerRight.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags); } void CTabDemoDlg::OnCheckShowClose() { DWORD dwTabWndStyleRemove = __ETWS_SHOW_BTN_CLOSE; DWORD dwTabWndStyleAdd = __ETWS_SHOW_BTN_CLOSE; if( m_CheckShowClose.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckShowHelp() { DWORD dwTabWndStyleRemove = __ETWS_SHOW_BTN_HELP; DWORD dwTabWndStyleAdd = __ETWS_SHOW_BTN_HELP; if( m_CheckShowHelp.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckEnableClose() { DWORD dwTabWndStyleRemove = __ETWS_ENABLED_BTN_CLOSE; DWORD dwTabWndStyleAdd = __ETWS_ENABLED_BTN_CLOSE; if( m_CheckEnableClose.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckEnableHelp() { DWORD dwTabWndStyleRemove = __ETWS_ENABLED_BTN_HELP; DWORD dwTabWndStyleAdd = __ETWS_ENABLED_BTN_HELP; if( m_CheckEnableHelp.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckEqualWidths() { DWORD dwTabWndStyleRemove = __ETWS_EQUAL_WIDTHS; DWORD dwTabWndStyleAdd = __ETWS_EQUAL_WIDTHS; if( m_CheckEqualWidth.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckInvertVertFont() { DWORD dwTabWndStyleRemove = __ETWS_INVERT_VERT_FONT; DWORD dwTabWndStyleAdd = __ETWS_INVERT_VERT_FONT; if( m_CheckInvertFont.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckBoldSelection() { DWORD dwTabWndStyleRemove = __ETWS_BOLD_SELECTION; DWORD dwTabWndStyleAdd = __ETWS_BOLD_SELECTION; if( m_CheckBoldSelection.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckFullRowWidths() { DWORD dwTabWndStyleRemove = __ETWS_FULL_WIDTH; DWORD dwTabWndStyleAdd = __ETWS_FULL_WIDTH; if( m_CheckFullRowWidth.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckCenterText() { DWORD dwTabWndStyleRemove = __ETWS_CENTERED_TEXT; DWORD dwTabWndStyleAdd = __ETWS_CENTERED_TEXT; if( m_CheckCenterText.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckAutohideScroll() { DWORD dwTabWndStyleRemove = __ETWS_AUTOHIDE_SCROLL; DWORD dwTabWndStyleAdd = __ETWS_AUTOHIDE_SCROLL; if( m_CheckAutoHideScroll.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnCheckFocusOnHover() { DWORD dwTabWndStyleRemove = __ETWS_HOVER_FOCUS; DWORD dwTabWndStyleAdd = __ETWS_HOVER_FOCUS; if( m_CheckFocusOnHover.GetCheck() != 0 ) dwTabWndStyleRemove = 0; else dwTabWndStyleAdd = 0; m_wndTabOuterTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabOuterRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerTop.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerBottom.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerLeft.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); m_wndTabInnerRight.ModifyTabWndStyle( dwTabWndStyleRemove, dwTabWndStyleAdd, true ); } void CTabDemoDlg::OnButtonClearTabs() { m_BtnClear.EnableWindow( FALSE ); if( !m_BtnAdd1.IsWindowEnabled() ) { m_BtnAdd1.EnableWindow( TRUE ); m_BtnAdd10.EnableWindow( TRUE ); } m_wndTabOuterTop.ItemRemoveAll(true); m_wndTabOuterBottom.ItemRemoveAll(true); m_wndTabOuterLeft.ItemRemoveAll(true); m_wndTabOuterRight.ItemRemoveAll(true); m_wndTabInnerTop.ItemRemoveAll(true); m_wndTabInnerBottom.ItemRemoveAll(true); m_wndTabInnerLeft.ItemRemoveAll(true); m_wndTabInnerRight.ItemRemoveAll(true); } void CTabDemoDlg::_DoAdd1( bool bUpdateTabWnd ) { ASSERT( m_ImageList.GetSafeHandle() != NULL ); ASSERT( m_nDemoImageListSize > 0 ); if( !m_BtnClear.IsWindowEnabled() ) m_BtnClear.EnableWindow( TRUE ); // insert 1 item into inner (non-grouped) tab controls ASSERT( m_nDemoImageListAddIndexInner <= m_nDemoImageListSize ); if( m_nDemoImageListAddIndexInner == (m_nDemoImageListSize-1) ) m_nDemoImageListAddIndexInner = 0; ASSERT( g_ItemsData[m_nDemoImageListAddIndexInner].m_sItemText != NULL ); HICON hIconInner = m_ImageList.ExtractIcon( m_nDemoImageListAddIndexInner ); ASSERT( hIconInner != NULL ); m_wndTabInnerTop.ItemInsert( g_ItemsData[m_nDemoImageListAddIndexInner].m_sItemText, hIconInner ); m_wndTabInnerBottom.ItemInsert( g_ItemsData[m_nDemoImageListAddIndexInner].m_sItemText, hIconInner ); m_wndTabInnerLeft.ItemInsert( g_ItemsData[m_nDemoImageListAddIndexInner].m_sItemText, hIconInner ); m_wndTabInnerRight.ItemInsert( g_ItemsData[m_nDemoImageListAddIndexInner].m_sItemText, hIconInner ); ::DestroyIcon( hIconInner ); m_nDemoImageListAddIndexInner++; // insert 1 group into outer (grouped) tab controls /* m_wndTabOuterTop.ItemInsert( ); m_wndTabOuterBottom.ItemInsert( ); m_wndTabOuterLeft.ItemInsert( ); m_wndTabOuterRight.ItemInsert( ); */ ASSERT( m_nDemoImageListAddIndexOuter <= m_nDemoImageListSize ); if( m_nDemoImageListAddIndexOuter == (m_nDemoImageListSize-1) ) m_nDemoImageListAddIndexOuter = 0; for( INT nAddedToOuter = 0; true ; nAddedToOuter++ ) { bool bGroupStart = g_ItemsData[m_nDemoImageListAddIndexOuter].m_bGroupStart; if( nAddedToOuter != 0 && bGroupStart ) break; DWORD dwItemStyle = 0; if( bGroupStart ) dwItemStyle |= __ETWI_GROUP_START | __ETWI_IN_GROUP_ACTIVE; HICON hIconOuter = m_ImageList.ExtractIcon( m_nDemoImageListAddIndexOuter ); ASSERT( hIconOuter != NULL ); ASSERT( g_ItemsData[m_nDemoImageListAddIndexOuter].m_sItemText != NULL ); m_wndTabOuterTop.ItemInsert( g_ItemsData[m_nDemoImageListAddIndexOuter].m_sItemText, hIconOuter, true, dwItemStyle ); m_wndTabOuterBottom.ItemInsert( g_ItemsData[m_nDemoImageListAddIndexOuter].m_sItemText, hIconOuter, true, dwItemStyle ); m_wndTabOuterLeft.ItemInsert( g_ItemsData[m_nDemoImageListAddIndexOuter].m_sItemText, hIconOuter, true, dwItemStyle ); m_wndTabOuterRight.ItemInsert( g_ItemsData[m_nDemoImageListAddIndexOuter].m_sItemText, hIconOuter, true, dwItemStyle ); ::DestroyIcon( hIconOuter ); if( m_nDemoImageListAddIndexOuter == (m_nDemoImageListSize-1) ) m_nDemoImageListAddIndexOuter = 0; else m_nDemoImageListAddIndexOuter++; } // for( INT nAddedToOuter = 0; true ; nAddedToOuter++ ) // update or delay-update all tab controls m_wndTabInnerTop.UpdateTabWnd( bUpdateTabWnd ); m_wndTabInnerBottom.UpdateTabWnd( bUpdateTabWnd ); m_wndTabInnerLeft.UpdateTabWnd( bUpdateTabWnd ); m_wndTabInnerRight.UpdateTabWnd( bUpdateTabWnd ); m_wndTabOuterTop.UpdateTabWnd( bUpdateTabWnd ); m_wndTabOuterBottom.UpdateTabWnd( bUpdateTabWnd ); m_wndTabOuterLeft.UpdateTabWnd( bUpdateTabWnd ); m_wndTabOuterRight.UpdateTabWnd( bUpdateTabWnd ); if( m_wndTabInnerTop.ItemGetCount() >= 100 ) { if( m_BtnAdd1.IsWindowEnabled() ) { m_BtnAdd1.EnableWindow( FALSE ); m_BtnAdd10.EnableWindow( FALSE ); } } } void CTabDemoDlg::OnButtonAddTab1() { _DoAdd1(true); } void CTabDemoDlg::OnButtonAddTab10() { for( INT i=0; i < 10; i++ ) { bool bUpdateTabWnd = ( i == 9 ) ? true : false; _DoAdd1(bUpdateTabWnd); } } #endif // (!defined __EXT_MFC_NO_TAB_CTRL)